// 流式请求
export async function fetchStream(queryText:string, callback:(value:string) => void) {
  const url = 'https://deepseek.hlwwg.com/api/generate';
  const payload = {
    model: "deepseek-r1:1.5b",
    prompt: queryText,
    stream: true
  };

  try {
    const response = await fetch(url, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(payload)
    });
    if(response.body == null) return;
    const reader = response.body.getReader();
    const decoder = new TextDecoder();
    let buffer = '';

    while (true) {
      const { done, value } = await reader.read();
      if (done) break;

      buffer += decoder.decode(value, { stream: true });

      // 尝试处理缓冲区中的完整JSON对象（假设用换行分隔）
      const lines = buffer.split('\n');
      buffer = lines.pop() || ''; // 保存未完成的行

      for (const line of lines) {
        const trimmedLine = line.trim();
        if (!trimmedLine) continue;

        try {
          const jsonData = JSON.parse(trimmedLine);
          console.log('收到流数据:', jsonData);
          callback(jsonData.response);
        } catch (e) {
          console.error('解析JSON失败:', e);
        }
      }
    }

    // 处理剩余数据
    if (buffer.trim()) {
      try {
        const jsonData = JSON.parse(buffer.trim());
        console.log('最终数据:', jsonData);
      } catch (e) {
        console.error('解析剩余数据失败:', e);
      }
    }

  } catch (error) {
    console.error('请求失败:', error);
  }
}
